import argparse
import json
from re import I
from openai import OpenAI

def load_jsonl(file_path):
    """
    载入 JSONL 文件并返回一个包含所有 JSON 对象的列表。
    
    :param file_path: JSONL 文件的路径
    :return: 包含所有 JSON 对象的列表
    """
    data = []
    with open(file_path, 'r', encoding='utf-8') as file:
        for line in file:
            # 每一行是一个 JSON 对象，解析后添加到列表中
            data.append(json.loads(line.strip()))
    return data

def llm_eval(data1, data2):
    client = OpenAI()
    max_length = len(data1)
    
    
    for idx in range(max_length):
        info1= data1[idx]
        info2= data2[idx]

        prompt = "根据用户请求，请判定以下两个回复内容的质量哪个更好。请在最后一行给出你的判断，回复1还是回复2的质量更好。"
        prompt += "\n 用户请求：" + info1['prompt'] + "\n"

        response1 = "\n 回复1： " + info1['predict'] + "\n"
        response2 = "\n 回复2： " + info2['predict'] + "\n"

        prompt += response1
        prompt += response2

        response = client.chat.completions.create(
            model="model/qwen3-235b-a22b",
            messages= [
                {"role": "user", "content": prompt}
            ],
            max_tokens=4096,
            stream=False,
            extra_body={'chat_template_kwargs':{'enable_thinking': True}}
        )

        print(response.choices[0].message.content)

        print()


    return 

def main():
    # 创建命令行参数解析器
    parser = argparse.ArgumentParser(description="载入 JSONL 文件并打印内容")

    # 添加命令行参数
    parser.add_argument(
        "--file1",
        type=str,
        required=True,
        help="JSONL 文件的路径"
    )
    
    # 添加命令行参数
    parser.add_argument(
        "--file2",
        type=str,
        required=True,
        help="JSONL 文件的路径"
    )
    
    # 解析命令行参数
    args = parser.parse_args()
    
    data1 = load_jsonl(args.file1)
    data2 = load_jsonl(args.file2)

    llm_eval(data1, data2)

    print()


# 检查是否是主程序入口
if __name__ == "__main__":
    main()
             